1 module directx.d3dcommon; 2 3 version(Windows): 4 version(Direct3D_7) 5 version = Direct3D; 6 version(Direct3D_8) 7 version = Direct3D; 8 version(Direct3D_9) 9 version = Direct3D; 10 version(Direct3D_10) 11 version = Direct3D; 12 version(Direct3D_11) 13 version = Direct3D; 14 version(Direct3D_12) 15 version = Direct3D; 16 17 version(Direct3D): 18 19 public import directx.com; 20 21 alias D3DCOLOR = DWORD; 22 23 struct D3DVECTOR { 24 float x; 25 float y; 26 float z; 27 } 28 alias LPD3DVECTOR = D3DVECTOR*; 29 30 struct D3DCOLORVALUE { 31 float r; 32 float g; 33 float b; 34 float a; 35 } 36 alias LPD3DCOLORVALUE = D3DCOLORVALUE*; 37 38 struct D3DRECT { 39 LONG x1; 40 LONG y1; 41 LONG x2; 42 LONG y2; 43 } 44 alias LPD3DRECT = D3DRECT*; 45 46 union D3DMATRIX { 47 struct { 48 float _11, _12, _13, _14; 49 float _21, _22, _23, _24; 50 float _31, _32, _33, _34; 51 float _41, _42, _43, _44; 52 } 53 float[4][4] m; 54 } 55 alias LPD3DMATRIX = D3DMATRIX*; 56 57 alias D3DTRANSFORMSTATETYPE = DWORD; 58 enum : D3DTRANSFORMSTATETYPE { 59 D3DTS_VIEW = 2, 60 D3DTS_PROJECTION = 3, 61 D3DTS_TEXTURE0 = 16, 62 D3DTS_TEXTURE1 = 17, 63 D3DTS_TEXTURE2 = 18, 64 D3DTS_TEXTURE3 = 19, 65 D3DTS_TEXTURE4 = 20, 66 D3DTS_TEXTURE5 = 21, 67 D3DTS_TEXTURE6 = 22, 68 D3DTS_TEXTURE7 = 23 69 } 70 71 alias D3DTEXTURESTAGESTATETYPE = DWORD; 72 enum : D3DTEXTURESTAGESTATETYPE { 73 D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */ 74 D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */ 75 D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */ 76 D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */ 77 D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */ 78 D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */ 79 D3DTSS_BUMPENVMAT00 = 7, /* float (bump mapping matrix) */ 80 D3DTSS_BUMPENVMAT01 = 8, /* float (bump mapping matrix) */ 81 D3DTSS_BUMPENVMAT10 = 9, /* float (bump mapping matrix) */ 82 D3DTSS_BUMPENVMAT11 = 10, /* float (bump mapping matrix) */ 83 D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */ 84 D3DTSS_BUMPENVLSCALE = 22, /* float scale for bump map luminance */ 85 D3DTSS_BUMPENVLOFFSET = 23, /* float offset for bump map luminance */ 86 D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */ 87 D3DTSS_COLORARG0 = 26, /* D3DTA_* third arg for triadic ops */ 88 D3DTSS_ALPHAARG0 = 27, /* D3DTA_* third arg for triadic ops */ 89 D3DTSS_RESULTARG = 28, /* D3DTA_* arg for result (CURRENT or TEMP) */ 90 D3DTSS_CONSTANT = 32, /* Per-stage constant D3DTA_CONSTANT */ 91 } 92 93 alias D3DSTATEBLOCKTYPE = DWORD; 94 enum : D3DSTATEBLOCKTYPE { 95 D3DSBT_ALL = 1, // capture all state 96 D3DSBT_PIXELSTATE = 2, // capture pixel state 97 D3DSBT_VERTEXSTATE = 3, // capture vertex state 98 } 99 100 alias D3DRENDERSTATETYPE = DWORD; 101 enum : D3DRENDERSTATETYPE { 102 D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */ 103 D3DRS_FILLMODE = 8, /* D3DFILLMODE */ 104 D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */ 105 D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */ 106 D3DRS_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ 107 D3DRS_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ 108 D3DRS_SRCBLEND = 19, /* D3DBLEND */ 109 D3DRS_DESTBLEND = 20, /* D3DBLEND */ 110 D3DRS_CULLMODE = 22, /* D3DCULL */ 111 D3DRS_ZFUNC = 23, /* D3DCMPFUNC */ 112 D3DRS_ALPHAREF = 24, /* D3DFIXED */ 113 D3DRS_ALPHAFUNC = 25, /* D3DCMPFUNC */ 114 D3DRS_DITHERENABLE = 26, /* TRUE to enable dithering */ 115 D3DRS_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */ 116 D3DRS_FOGENABLE = 28, /* TRUE to enable fog blending */ 117 D3DRS_SPECULARENABLE = 29, /* TRUE to enable specular */ 118 D3DRS_FOGCOLOR = 34, /* D3DCOLOR */ 119 D3DRS_FOGTABLEMODE = 35, /* D3DFOGMODE */ 120 D3DRS_FOGSTART = 36, /* Fog start (for both vertex and pixel fog) */ 121 D3DRS_FOGEND = 37, /* Fog end */ 122 D3DRS_FOGDENSITY = 38, /* Fog density */ 123 D3DRS_RANGEFOGENABLE = 48, /* Enables range-based fog */ 124 D3DRS_STENCILENABLE = 52, /* BOOL enable/disable stenciling */ 125 D3DRS_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */ 126 D3DRS_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */ 127 D3DRS_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */ 128 D3DRS_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 129 D3DRS_STENCILREF = 57, /* Reference value used in stencil test */ 130 D3DRS_STENCILMASK = 58, /* Mask value used in stencil test */ 131 D3DRS_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */ 132 D3DRS_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */ 133 D3DRS_WRAP0 = 128, /* wrap for 1st texture coord. set */ 134 D3DRS_WRAP1 = 129, /* wrap for 2nd texture coord. set */ 135 D3DRS_WRAP2 = 130, /* wrap for 3rd texture coord. set */ 136 D3DRS_WRAP3 = 131, /* wrap for 4th texture coord. set */ 137 D3DRS_WRAP4 = 132, /* wrap for 5th texture coord. set */ 138 D3DRS_WRAP5 = 133, /* wrap for 6th texture coord. set */ 139 D3DRS_WRAP6 = 134, /* wrap for 7th texture coord. set */ 140 D3DRS_WRAP7 = 135, /* wrap for 8th texture coord. set */ 141 D3DRS_CLIPPING = 136, 142 D3DRS_LIGHTING = 137, 143 D3DRS_AMBIENT = 139, 144 D3DRS_FOGVERTEXMODE = 140, 145 D3DRS_COLORVERTEX = 141, 146 D3DRS_LOCALVIEWER = 142, 147 D3DRS_NORMALIZENORMALS = 143, 148 D3DRS_DIFFUSEMATERIALSOURCE = 145, 149 D3DRS_SPECULARMATERIALSOURCE = 146, 150 D3DRS_AMBIENTMATERIALSOURCE = 147, 151 D3DRS_EMISSIVEMATERIALSOURCE = 148, 152 D3DRS_VERTEXBLEND = 151, 153 D3DRS_CLIPPLANEENABLE = 152, 154 D3DRS_POINTSIZE = 154, /* float point size */ 155 D3DRS_POINTSIZE_MIN = 155, /* float point size min threshold */ 156 D3DRS_POINTSPRITEENABLE = 156, /* BOOL point texture coord control */ 157 D3DRS_POINTSCALEENABLE = 157, /* BOOL point size scale enable */ 158 D3DRS_POINTSCALE_A = 158, /* float point attenuation A value */ 159 D3DRS_POINTSCALE_B = 159, /* float point attenuation B value */ 160 D3DRS_POINTSCALE_C = 160, /* float point attenuation C value */ 161 D3DRS_MULTISAMPLEANTIALIAS = 161, // BOOL - set to do FSAA with multisample buffer 162 D3DRS_MULTISAMPLEMASK = 162, // DWORD - per-sample enable/disable 163 D3DRS_PATCHEDGESTYLE = 163, // Sets whether patch edges will use float style tessellation 164 D3DRS_DEBUGMONITORTOKEN = 165, // DEBUG ONLY - token to debug monitor 165 D3DRS_POINTSIZE_MAX = 166, /* float point size max threshold */ 166 D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 167 D3DRS_COLORWRITEENABLE = 168, // per-channel write enable 168 D3DRS_TWEENFACTOR = 170, // float tween factor 169 D3DRS_BLENDOP = 171, // D3DBLENDOP setting 170 D3DRS_POSITIONDEGREE = 172, // NPatch position interpolation degree. D3DDEGREE_LINEAR or D3DDEGREE_CUBIC (default) 171 D3DRS_NORMALDEGREE = 173, // NPatch normal interpolation degree. D3DDEGREE_LINEAR (default) or D3DDEGREE_QUADRATIC 172 D3DRS_SCISSORTESTENABLE = 174, 173 D3DRS_SLOPESCALEDEPTHBIAS = 175, 174 D3DRS_ANTIALIASEDLINEENABLE = 176, 175 D3DRS_MINTESSELLATIONLEVEL = 178, 176 D3DRS_MAXTESSELLATIONLEVEL = 179, 177 D3DRS_ADAPTIVETESS_X = 180, 178 D3DRS_ADAPTIVETESS_Y = 181, 179 D3DRS_ADAPTIVETESS_Z = 182, 180 D3DRS_ADAPTIVETESS_W = 183, 181 D3DRS_ENABLEADAPTIVETESSELLATION = 184, 182 D3DRS_TWOSIDEDSTENCILMODE = 185, /* BOOL enable/disable 2 sided stenciling */ 183 D3DRS_CCW_STENCILFAIL = 186, /* D3DSTENCILOP to do if ccw stencil test fails */ 184 D3DRS_CCW_STENCILZFAIL = 187, /* D3DSTENCILOP to do if ccw stencil test passes and Z test fails */ 185 D3DRS_CCW_STENCILPASS = 188, /* D3DSTENCILOP to do if both ccw stencil and Z tests pass */ 186 D3DRS_CCW_STENCILFUNC = 189, /* D3DCMPFUNC fn. ccw Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 187 D3DRS_COLORWRITEENABLE1 = 190, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 188 D3DRS_COLORWRITEENABLE2 = 191, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 189 D3DRS_COLORWRITEENABLE3 = 192, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 190 D3DRS_BLENDFACTOR = 193, /* D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR */ 191 D3DRS_SRGBWRITEENABLE = 194, /* Enable rendertarget writes to be DE-linearized to SRGB (for formats that expose D3DUSAGE_QUERY_SRGBWRITE) */ 192 D3DRS_DEPTHBIAS = 195, 193 D3DRS_WRAP8 = 198, /* Additional wrap states for vs_3_0+ attributes with D3DDECLUSAGE_TEXCOORD */ 194 D3DRS_WRAP9 = 199, 195 D3DRS_WRAP10 = 200, 196 D3DRS_WRAP11 = 201, 197 D3DRS_WRAP12 = 202, 198 D3DRS_WRAP13 = 203, 199 D3DRS_WRAP14 = 204, 200 D3DRS_WRAP15 = 205, 201 D3DRS_SEPARATEALPHABLENDENABLE = 206, /* TRUE to enable a separate blending function for the alpha channel */ 202 D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 203 D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 204 D3DRS_BLENDOPALPHA = 209, /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 205 } 206 207 alias D3DPRIMITIVETYPE = DWORD; 208 enum : D3DPRIMITIVETYPE { 209 D3DPT_POINTLIST = 1, 210 D3DPT_LINELIST = 2, 211 D3DPT_LINESTRIP = 3, 212 D3DPT_TRIANGLELIST = 4, 213 D3DPT_TRIANGLESTRIP = 5, 214 D3DPT_TRIANGLEFAN = 6 215 } 216 217 alias D3DLIGHTTYPE = DWORD; 218 enum : D3DLIGHTTYPE { 219 D3DLIGHT_POINT = 1, 220 D3DLIGHT_SPOT = 2, 221 D3DLIGHT_DIRECTIONAL = 3 222 } 223 224 enum D3DADAPTER_DEFAULT = 0; 225 226 enum { 227 D3DCLEAR_TARGET = 0x00000001, /* Clear target surface */ 228 D3DCLEAR_ZBUFFER = 0x00000002, /* Clear target z buffer */ 229 D3DCLEAR_STENCIL = 0x00000004 /* Clear stencil planes */ 230 } 231 232 alias D3DDEVTYPE = DWORD; 233 enum : D3DDEVTYPE { 234 D3DDEVTYPE_HAL = 1, 235 D3DDEVTYPE_NULLREF = 4, 236 D3DDEVTYPE_REF = 2, 237 D3DDEVTYPE_SW = 3 238 } 239 240 alias D3DFORMAT = DWORD; 241 enum : D3DFORMAT { 242 D3DFMT_UNKNOWN = 0, 243 244 D3DFMT_R8G8B8 = 20, 245 D3DFMT_A8R8G8B8 = 21, 246 D3DFMT_X8R8G8B8 = 22, 247 D3DFMT_R5G6B5 = 23, 248 D3DFMT_X1R5G5B5 = 24, 249 D3DFMT_A1R5G5B5 = 25, 250 D3DFMT_A4R4G4B4 = 26, 251 D3DFMT_R3G3B2 = 27, 252 D3DFMT_A8 = 28, 253 D3DFMT_A8R3G3B2 = 29, 254 D3DFMT_X4R4G4B4 = 30, 255 D3DFMT_A2B10G10R10 = 31, 256 D3DFMT_A8B8G8R8 = 32, 257 D3DFMT_X8B8G8R8 = 33, 258 D3DFMT_G16R16 = 34, 259 D3DFMT_A2R10G10B10 = 35, 260 D3DFMT_A16B16G16R16 = 36, 261 262 D3DFMT_A8P8 = 40, 263 D3DFMT_P8 = 41, 264 265 D3DFMT_L8 = 50, 266 D3DFMT_A8L8 = 51, 267 D3DFMT_A4L4 = 52, 268 269 D3DFMT_V8U8 = 60, 270 D3DFMT_L6V5U5 = 61, 271 D3DFMT_X8L8V8U8 = 62, 272 D3DFMT_Q8W8V8U8 = 63, 273 D3DFMT_V16U16 = 64, 274 D3DFMT_A2W10V10U10 = 67, 275 276 /*D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'), 277 D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'), 278 D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'), 279 D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'), 280 D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'), 281 D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'), 282 D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'), 283 D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'), 284 D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),*/ 285 286 D3DFMT_D16_LOCKABLE = 70, 287 D3DFMT_D32 = 71, 288 D3DFMT_D15S1 = 73, 289 D3DFMT_D24S8 = 75, 290 D3DFMT_D24X8 = 77, 291 D3DFMT_D24X4S4 = 79, 292 D3DFMT_D16 = 80, 293 294 D3DFMT_D32F_LOCKABLE = 82, 295 D3DFMT_D24FS8 = 83, 296 297 /* D3D9Ex only -- */ 298 D3DFMT_D32_LOCKABLE = 84, 299 D3DFMT_S8_LOCKABLE = 85, 300 /* -- D3D9Ex only */ 301 302 D3DFMT_L16 = 81, 303 304 D3DFMT_VERTEXDATA =100, 305 D3DFMT_INDEX16 =101, 306 D3DFMT_INDEX32 =102, 307 308 D3DFMT_Q16W16V16U16 =110, 309 310 //D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'), 311 312 D3DFMT_R16F = 111, 313 D3DFMT_G16R16F = 112, 314 D3DFMT_A16B16G16R16F = 113, 315 316 D3DFMT_R32F = 114, 317 D3DFMT_G32R32F = 115, 318 D3DFMT_A32B32G32R32F = 116, 319 320 D3DFMT_CxV8U8 = 117, 321 322 /* D3D9Ex only -- */ 323 D3DFMT_A1 = 118, 324 D3DFMT_A2B10G10R10_XR_BIAS = 119, 325 D3DFMT_BINARYBUFFER = 199 326 /* -- D3D9Ex only */ 327 } 328 329 alias D3DMULTISAMPLE_TYPE = DWORD; 330 enum : D3DMULTISAMPLE_TYPE { 331 TODO_D3DMULTISAMPLE_TYPE 332 } 333 334 alias D3DRESOURCETYPE = DWORD; 335 enum : D3DRESOURCETYPE { 336 TODO_D3DRESOURCETYPE 337 } 338 339 alias D3DBACKBUFFER_TYPE = DWORD; 340 enum : D3DBACKBUFFER_TYPE { 341 D3DBACKBUFFER_TYPE_MONO = 0, 342 D3DBACKBUFFER_TYPE_LEFT = 1, 343 D3DBACKBUFFER_TYPE_RIGHT = 2 344 } 345 346 alias D3DSWAPEFFECT = DWORD; 347 enum : D3DSWAPEFFECT { 348 D3DSWAPEFFECT_DISCARD = 1, 349 D3DSWAPEFFECT_FLIP = 2, 350 D3DSWAPEFFECT_COPY = 3, 351 352 /* D3D9Ex only -- */ 353 D3DSWAPEFFECT_OVERLAY = 4, 354 D3DSWAPEFFECT_FLIPEX = 5 355 /* -- D3D9Ex only */ 356 } 357 358 alias D3DPOOL = DWORD; 359 enum : D3DPOOL { 360 D3DPOOL_DEFAULT = 0, 361 D3DPOOL_MANAGED = 1, 362 D3DPOOL_SYSTEMMEM = 2, 363 D3DPOOL_SCRATCH = 3 364 } 365 366 alias D3DBASISTYPE = DWORD; 367 enum : D3DBASISTYPE { 368 D3DBASIS_BEZIER = 0, 369 D3DBASIS_BSPLINE = 1, 370 D3DBASIS_CATMULL_ROM = 2, /* In D3D8 this used to be D3DBASIS_INTERPOLATE */ 371 } 372 373 alias D3DDEGREETYPE = DWORD; 374 enum : D3DDEGREETYPE { 375 D3DDEGREE_LINEAR = 1, 376 D3DDEGREE_QUADRATIC = 2, 377 D3DDEGREE_CUBIC = 3, 378 D3DDEGREE_QUINTIC = 5 379 } 380 381 struct D3DRECTPATCH_INFO { 382 UINT StartVertexOffsetWidth; 383 UINT StartVertexOffsetHeight; 384 UINT Width; 385 UINT Height; 386 UINT Stride; 387 D3DBASISTYPE Basis; 388 D3DDEGREETYPE Degree; 389 } 390 391 struct D3DTRIPATCH_INFO { 392 UINT StartVertexOffset; 393 UINT NumVertices; 394 D3DBASISTYPE Basis; 395 D3DDEGREETYPE Degree; 396 } 397 398 alias D3DCUBEMAP_FACES = DWORD; 399 enum : D3DCUBEMAP_FACES { 400 D3DCUBEMAP_FACE_POSITIVE_X = 0, 401 D3DCUBEMAP_FACE_NEGATIVE_X = 1, 402 D3DCUBEMAP_FACE_POSITIVE_Y = 2, 403 D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 404 D3DCUBEMAP_FACE_POSITIVE_Z = 4, 405 D3DCUBEMAP_FACE_NEGATIVE_Z = 5 406 } 407 408 struct D3DSURFACE_DESC { 409 D3DFORMAT Format; 410 D3DRESOURCETYPE Type; 411 DWORD Usage; 412 D3DPOOL Pool; 413 UINT Size; 414 415 D3DMULTISAMPLE_TYPE MultiSampleType; 416 UINT Width; 417 UINT Height; 418 } 419 420 struct D3DVOLUME_DESC { 421 D3DFORMAT Format; 422 D3DRESOURCETYPE Type; 423 DWORD Usage; 424 D3DPOOL Pool; 425 UINT Size; 426 427 UINT Width; 428 UINT Height; 429 UINT Depth; 430 } 431 432 struct D3DLOCKED_RECT { 433 INT Pitch; 434 void* pBits; 435 } 436 437 struct D3DBOX { 438 UINT Left; 439 UINT Top; 440 UINT Right; 441 UINT Bottom; 442 UINT Front; 443 UINT Back; 444 } 445 446 struct D3DLOCKED_BOX { 447 INT RowPitch; 448 INT SlicePitch; 449 void* pBits; 450 } 451 452 struct D3DGAMMARAMP { 453 WORD[256] red ; 454 WORD[256] green; 455 WORD[256] blue ; 456 } 457 458 struct D3DDEVICE_CREATION_PARAMETERS { 459 UINT AdapterOrdinal; 460 D3DDEVTYPE DeviceType; 461 HWND hFocusWindow; 462 DWORD BehaviorFlags; 463 } 464 465 struct D3DDISPLAYMODE { 466 UINT Width; 467 UINT Height; 468 UINT RefreshRate; 469 D3DFORMAT Format; 470 } 471 472 struct D3DPRESENT_PARAMETERS { 473 UINT BackBufferWidth; 474 UINT BackBufferHeight; 475 D3DFORMAT BackBufferFormat; 476 UINT BackBufferCount; 477 478 D3DMULTISAMPLE_TYPE MultiSampleType; 479 version (_D3D9) DWORD MultiSampleQuality; 480 481 D3DSWAPEFFECT SwapEffect; 482 HWND hDeviceWindow; 483 BOOL Windowed; 484 BOOL EnableAutoDepthStencil; 485 D3DFORMAT AutoDepthStencilFormat; 486 DWORD Flags; 487 488 /* FullScreen_RefreshRateInHz must be zero for Windowed mode */ 489 UINT FullScreen_RefreshRateInHz; 490 UINT FullScreen_PresentationInterval; 491 } 492 493 enum MAX_DEVICE_IDENTIFIER_STRING = 512; 494 struct D3DADAPTER_IDENTIFIER8 { 495 char[MAX_DEVICE_IDENTIFIER_STRING] Driver; 496 char[MAX_DEVICE_IDENTIFIER_STRING] Description; 497 498 //#ifdef _WIN32 499 LARGE_INTEGER DriverVersion; /* Defined for 32 bit components */ 500 //#else 501 // DWORD DriverVersionLowPart; /* Defined for 16 bit driver components */ 502 // DWORD DriverVersionHighPart; 503 //#endif 504 505 DWORD VendorId; 506 DWORD DeviceId; 507 DWORD SubSysId; 508 DWORD Revision; 509 510 GUID DeviceIdentifier; 511 512 DWORD WHQLLevel; 513 } 514 515 struct D3DADAPTER_IDENTIFIER9 { 516 D3DADAPTER_IDENTIFIER8 identifier8; alias identifier8 this; 517 } 518 519 struct D3DRASTER_STATUS { 520 BOOL InVBlank; 521 UINT ScanLine; 522 } 523 524 struct D3DCAPS8 { 525 /* Device Info */ 526 D3DDEVTYPE DeviceType; 527 UINT AdapterOrdinal; 528 529 /* Caps from DX7 Draw */ 530 DWORD Caps; 531 DWORD Caps2; 532 DWORD Caps3; 533 DWORD PresentationIntervals; 534 535 /* Cursor Caps */ 536 DWORD CursorCaps; 537 538 /* 3D Device Caps */ 539 DWORD DevCaps; 540 541 DWORD PrimitiveMiscCaps; 542 DWORD RasterCaps; 543 DWORD ZCmpCaps; 544 DWORD SrcBlendCaps; 545 DWORD DestBlendCaps; 546 DWORD AlphaCmpCaps; 547 DWORD ShadeCaps; 548 DWORD TextureCaps; 549 DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture8's 550 DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture8's 551 DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture8's 552 DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture8's 553 DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture8's 554 555 DWORD LineCaps; // D3DLINECAPS 556 557 DWORD MaxTextureWidth, MaxTextureHeight; 558 DWORD MaxVolumeExtent; 559 560 DWORD MaxTextureRepeat; 561 DWORD MaxTextureAspectRatio; 562 DWORD MaxAnisotropy; 563 float MaxVertexW; 564 565 float GuardBandLeft; 566 float GuardBandTop; 567 float GuardBandRight; 568 float GuardBandBottom; 569 570 float ExtentsAdjust; 571 DWORD StencilCaps; 572 573 DWORD FVFCaps; 574 DWORD TextureOpCaps; 575 DWORD MaxTextureBlendStages; 576 DWORD MaxSimultaneousTextures; 577 578 DWORD VertexProcessingCaps; 579 DWORD MaxActiveLights; 580 DWORD MaxUserClipPlanes; 581 DWORD MaxVertexBlendMatrices; 582 DWORD MaxVertexBlendMatrixIndex; 583 584 float MaxPointSize; 585 586 DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call 587 DWORD MaxVertexIndex; 588 DWORD MaxStreams; 589 DWORD MaxStreamStride; // max stride for SetStreamSource 590 591 DWORD VertexShaderVersion; 592 DWORD MaxVertexShaderConst; // number of vertex shader constant registers 593 594 DWORD PixelShaderVersion; 595 float MaxPixelShaderValue; // max value of pixel shader arithmetic component 596 } 597 598 struct D3DVSHADERCAPS2_0 { 599 DWORD Caps; 600 INT DynamicFlowControlDepth; 601 INT NumTemps; 602 INT StaticFlowControlDepth; 603 } 604 605 struct D3DPSHADERCAPS2_0 { 606 DWORD Caps; 607 INT DynamicFlowControlDepth; 608 INT NumTemps; 609 INT StaticFlowControlDepth; 610 INT NumInstructionSlots; 611 } 612 613 struct D3DCAPS9 { 614 D3DCAPS8 d3dcaps8; alias d3dcaps8 this; 615 616 // Here are the DX9 specific ones 617 DWORD DevCaps2; 618 619 float MaxNpatchTessellationLevel; 620 DWORD Reserved5; 621 622 UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group 623 UINT AdapterOrdinalInGroup; // ordinal inside the adapter group 624 UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master) 625 DWORD DeclTypes; // Data types, supported in vertex declarations 626 DWORD NumSimultaneousRTs; // Will be at least 1 627 DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect 628 D3DVSHADERCAPS2_0 VS20Caps; 629 D3DPSHADERCAPS2_0 PS20Caps; 630 DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders 631 DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed 632 DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed 633 DWORD MaxVertexShader30InstructionSlots; 634 DWORD MaxPixelShader30InstructionSlots; 635 } 636 637 enum { 638 D3DCREATE_FPU_PRESERVE = 0x00000002, 639 D3DCREATE_MULTITHREADED = 0x00000004, 640 641 D3DCREATE_PUREDEVICE = 0x00000010, 642 D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020, 643 D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040, 644 D3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080, 645 646 D3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100, 647 D3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200, 648 D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = 0x00000400, 649 650 // This flag causes the D3D runtime not to alter the focus 651 // window in any way. Use with caution- the burden of supporting 652 // focus management events (alt-tab, etc.) falls on the 653 // application, and appropriate responses (switching display 654 // mode, etc.) should be coded. 655 D3DCREATE_NOWINDOWCHANGES = 0x00000800, 656 657 /* D3D9Ex only -- */ 658 659 // Disable multithreading for software vertex processing 660 D3DCREATE_DISABLE_PSGP_THREADING = 0x00002000, 661 // This flag enables present statistics on device. 662 D3DCREATE_ENABLE_PRESENTSTATS = 0x00004000, 663 // This flag disables printscreen support in the runtime for this device 664 D3DCREATE_DISABLE_PRINTSCREEN = 0x00008000, 665 666 D3DCREATE_SCREENSAVER = 0x10000000 667 } 668 669 enum { 670 /* Usages */ 671 D3DUSAGE_RENDERTARGET = 0x00000001, 672 D3DUSAGE_DEPTHSTENCIL = 0x00000002, 673 674 /* Usages for Vertex/Index buffers */ 675 D3DUSAGE_WRITEONLY = 0x00000008, 676 D3DUSAGE_SOFTWAREPROCESSING = 0x00000010, 677 D3DUSAGE_DONOTCLIP = 0x00000020, 678 D3DUSAGE_POINTS = 0x00000040, 679 D3DUSAGE_RTPATCHES = 0x00000080, 680 D3DUSAGE_NPATCHES = 0x00000100, 681 D3DUSAGE_DYNAMIC = 0x00000200 682 } 683 684 alias D3D_DRIVER_TYPE = int; 685 enum : D3D_DRIVER_TYPE 686 { 687 D3D_DRIVER_TYPE_UNKNOWN = 0, 688 D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , 689 D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , 690 D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , 691 D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , 692 D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) 693 } 694 695 alias D3D_FEATURE_LEVEL = int; 696 enum : D3D_FEATURE_LEVEL 697 { 698 D3D_FEATURE_LEVEL_9_1 = 0x9100, 699 D3D_FEATURE_LEVEL_9_2 = 0x9200, 700 D3D_FEATURE_LEVEL_9_3 = 0x9300, 701 D3D_FEATURE_LEVEL_10_0 = 0xa000, 702 D3D_FEATURE_LEVEL_10_1 = 0xa100, 703 D3D_FEATURE_LEVEL_11_0 = 0xb000, 704 D3D_FEATURE_LEVEL_11_1 = 0xb100, 705 D3D_FEATURE_LEVEL_12_0 = 0xc000, 706 D3D_FEATURE_LEVEL_12_1 = 0xc100 707 } 708 709 alias D3D_PRIMITIVE_TOPOLOGY = int; 710 enum : D3D_PRIMITIVE_TOPOLOGY 711 { 712 D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, 713 D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, 714 D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, 715 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, 716 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, 717 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, 718 D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, 719 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, 720 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, 721 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, 722 D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, 723 D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, 724 D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, 725 D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, 726 D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, 727 D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, 728 D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, 729 D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, 730 D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, 731 D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, 732 D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, 733 D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, 734 D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, 735 D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, 736 D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, 737 D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, 738 D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, 739 D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, 740 D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, 741 D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, 742 D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, 743 D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, 744 D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, 745 D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, 746 D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, 747 D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, 748 D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, 749 D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, 750 D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, 751 D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, 752 D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, 753 D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, 754 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, 755 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, 756 D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, 757 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, 758 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, 759 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, 760 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, 761 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, 762 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, 763 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, 764 D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, 765 D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, 766 D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, 767 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, 768 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, 769 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, 770 D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, 771 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, 772 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, 773 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, 774 D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, 775 D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, 776 D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, 777 D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, 778 D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, 779 D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, 780 D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, 781 D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, 782 D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, 783 D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, 784 D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, 785 D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, 786 D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, 787 D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, 788 D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, 789 D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, 790 D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, 791 D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, 792 D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, 793 D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, 794 D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, 795 D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, 796 D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, 797 D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, 798 D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, 799 D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, 800 D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, 801 D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, 802 D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, 803 D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, 804 D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, 805 D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST 806 } 807 808 alias D3D_PRIMITIVE = int; 809 enum : D3D_PRIMITIVE 810 { 811 D3D_PRIMITIVE_UNDEFINED = 0, 812 D3D_PRIMITIVE_POINT = 1, 813 D3D_PRIMITIVE_LINE = 2, 814 D3D_PRIMITIVE_TRIANGLE = 3, 815 D3D_PRIMITIVE_LINE_ADJ = 6, 816 D3D_PRIMITIVE_TRIANGLE_ADJ = 7, 817 D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, 818 D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, 819 D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, 820 D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, 821 D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, 822 D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, 823 D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, 824 D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, 825 D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, 826 D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, 827 D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, 828 D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, 829 D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, 830 D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, 831 D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, 832 D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, 833 D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, 834 D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, 835 D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, 836 D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 28, 837 D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 29, 838 D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 30, 839 D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 31, 840 D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 32, 841 D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 33, 842 D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 34, 843 D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 35, 844 D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 36, 845 D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 37, 846 D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 38, 847 D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 39, 848 D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 40, 849 D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, 850 D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, 851 D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, 852 D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, 853 D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, 854 D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, 855 D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, 856 D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, 857 D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, 858 D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, 859 D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, 860 D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, 861 D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, 862 D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, 863 D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, 864 D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, 865 D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, 866 D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, 867 D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, 868 D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, 869 D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, 870 D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, 871 D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, 872 D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, 873 D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, 874 D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, 875 D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, 876 D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, 877 D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, 878 D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, 879 D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, 880 D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, 881 D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, 882 D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, 883 D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, 884 D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, 885 D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, 886 D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, 887 D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, 888 D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, 889 D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, 890 D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, 891 D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, 892 D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH 893 } 894 895 896 alias D3D_SRV_DIMENSION = int; 897 enum : D3D_SRV_DIMENSION 898 { 899 D3D_SRV_DIMENSION_UNKNOWN = 0, 900 D3D_SRV_DIMENSION_BUFFER = 1, 901 D3D_SRV_DIMENSION_TEXTURE1D = 2, 902 D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, 903 D3D_SRV_DIMENSION_TEXTURE2D = 4, 904 D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, 905 D3D_SRV_DIMENSION_TEXTURE2DMS = 6, 906 D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, 907 D3D_SRV_DIMENSION_TEXTURE3D = 8, 908 D3D_SRV_DIMENSION_TEXTURECUBE = 9, 909 D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, 910 D3D_SRV_DIMENSION_BUFFEREX = 11, 911 D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 912 D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 913 D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 914 D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 915 D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 916 D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 917 D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 918 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 919 D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 920 D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 921 D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 922 D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 923 D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 924 D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 925 D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 926 D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 927 D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 928 D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 929 D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 930 D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 931 D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, 932 D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 933 D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 934 D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 935 D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 936 D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 937 D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 938 D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 939 D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 940 D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 941 D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 942 D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, 943 D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX 944 } 945 946 struct _D3D_SHADER_MACRO 947 { 948 LPCSTR Name; 949 LPCSTR Definition; 950 } 951 alias _D3D_SHADER_MACRO D3D_SHADER_MACRO; 952 alias _D3D_SHADER_MACRO* LPD3D_SHADER_MACRO; 953 954 mixin( uuid!(ID3D10Blob, "8BA5FB08-5195-40e2-AC58-0D989C3A0102") ); 955 interface ID3D10Blob : IUnknown 956 { 957 extern(Windows): 958 LPVOID GetBufferPointer(); 959 960 SIZE_T GetBufferSize(); 961 962 } 963 alias ID3D10Blob LPD3D10BLOB; 964 alias ID3D10Blob ID3DBlob; 965 alias ID3DBlob LPD3DBLOB; 966 alias IID_ID3D10Blob IID_ID3DBlob; 967 968 969 alias _D3D_INCLUDE_TYPE = int; 970 enum : _D3D_INCLUDE_TYPE 971 { 972 D3D_INCLUDE_LOCAL = 0, 973 D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , 974 D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, 975 D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, 976 D3D_INCLUDE_FORCE_DWORD = 0x7fffffff 977 } 978 alias _D3D_INCLUDE_TYPE D3D_INCLUDE_TYPE; 979 980 981 extern(C++) interface ID3DInclude 982 { 983 extern(Windows): 984 HRESULT Open(D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes); 985 HRESULT Close(LPCVOID pData); 986 } 987 alias ID3DInclude LPD3DINCLUDE; 988 989 990 alias _D3D_SHADER_VARIABLE_CLASS = int; 991 enum : _D3D_SHADER_VARIABLE_CLASS 992 { 993 D3D_SVC_SCALAR = 0, 994 D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , 995 D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , 996 D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , 997 D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , 998 D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , 999 D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , 1000 D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , 1001 D3D10_SVC_SCALAR = D3D_SVC_SCALAR, 1002 D3D10_SVC_VECTOR = D3D_SVC_VECTOR, 1003 D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, 1004 D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, 1005 D3D10_SVC_OBJECT = D3D_SVC_OBJECT, 1006 D3D10_SVC_STRUCT = D3D_SVC_STRUCT, 1007 D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, 1008 D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, 1009 D3D_SVC_FORCE_DWORD = 0x7fffffff 1010 } 1011 alias _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS; 1012 1013 1014 alias _D3D_SHADER_VARIABLE_FLAGS = int; 1015 enum : _D3D_SHADER_VARIABLE_FLAGS 1016 { 1017 D3D_SVF_USERPACKED = 1, 1018 D3D_SVF_USED = 2, 1019 D3D_SVF_INTERFACE_POINTER = 4, 1020 D3D_SVF_INTERFACE_PARAMETER = 8, 1021 D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, 1022 D3D10_SVF_USED = D3D_SVF_USED, 1023 D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, 1024 D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, 1025 D3D_SVF_FORCE_DWORD = 0x7fffffff 1026 } 1027 alias _D3D_SHADER_VARIABLE_FLAGS D3D_SHADER_VARIABLE_FLAGS; 1028 1029 1030 alias _D3D_SHADER_VARIABLE_TYPE = int; 1031 enum : _D3D_SHADER_VARIABLE_TYPE 1032 { 1033 D3D_SVT_VOID = 0, 1034 D3D_SVT_BOOL = 1, 1035 D3D_SVT_INT = 2, 1036 D3D_SVT_FLOAT = 3, 1037 D3D_SVT_STRING = 4, 1038 D3D_SVT_TEXTURE = 5, 1039 D3D_SVT_TEXTURE1D = 6, 1040 D3D_SVT_TEXTURE2D = 7, 1041 D3D_SVT_TEXTURE3D = 8, 1042 D3D_SVT_TEXTURECUBE = 9, 1043 D3D_SVT_SAMPLER = 10, 1044 D3D_SVT_SAMPLER1D = 11, 1045 D3D_SVT_SAMPLER2D = 12, 1046 D3D_SVT_SAMPLER3D = 13, 1047 D3D_SVT_SAMPLERCUBE = 14, 1048 D3D_SVT_PIXELSHADER = 15, 1049 D3D_SVT_VERTEXSHADER = 16, 1050 D3D_SVT_PIXELFRAGMENT = 17, 1051 D3D_SVT_VERTEXFRAGMENT = 18, 1052 D3D_SVT_UINT = 19, 1053 D3D_SVT_UINT8 = 20, 1054 D3D_SVT_GEOMETRYSHADER = 21, 1055 D3D_SVT_RASTERIZER = 22, 1056 D3D_SVT_DEPTHSTENCIL = 23, 1057 D3D_SVT_BLEND = 24, 1058 D3D_SVT_BUFFER = 25, 1059 D3D_SVT_CBUFFER = 26, 1060 D3D_SVT_TBUFFER = 27, 1061 D3D_SVT_TEXTURE1DARRAY = 28, 1062 D3D_SVT_TEXTURE2DARRAY = 29, 1063 D3D_SVT_RENDERTARGETVIEW = 30, 1064 D3D_SVT_DEPTHSTENCILVIEW = 31, 1065 D3D_SVT_TEXTURE2DMS = 32, 1066 D3D_SVT_TEXTURE2DMSARRAY = 33, 1067 D3D_SVT_TEXTURECUBEARRAY = 34, 1068 D3D_SVT_HULLSHADER = 35, 1069 D3D_SVT_DOMAINSHADER = 36, 1070 D3D_SVT_INTERFACE_POINTER = 37, 1071 D3D_SVT_COMPUTESHADER = 38, 1072 D3D_SVT_DOUBLE = 39, 1073 D3D_SVT_RWTEXTURE1D = 40, 1074 D3D_SVT_RWTEXTURE1DARRAY = 41, 1075 D3D_SVT_RWTEXTURE2D = 42, 1076 D3D_SVT_RWTEXTURE2DARRAY = 43, 1077 D3D_SVT_RWTEXTURE3D = 44, 1078 D3D_SVT_RWBUFFER = 45, 1079 D3D_SVT_BYTEADDRESS_BUFFER = 46, 1080 D3D_SVT_RWBYTEADDRESS_BUFFER = 47, 1081 D3D_SVT_STRUCTURED_BUFFER = 48, 1082 D3D_SVT_RWSTRUCTURED_BUFFER = 49, 1083 D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, 1084 D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, 1085 D3D10_SVT_VOID = D3D_SVT_VOID, 1086 D3D10_SVT_BOOL = D3D_SVT_BOOL, 1087 D3D10_SVT_INT = D3D_SVT_INT, 1088 D3D10_SVT_FLOAT = D3D_SVT_FLOAT, 1089 D3D10_SVT_STRING = D3D_SVT_STRING, 1090 D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, 1091 D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, 1092 D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, 1093 D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, 1094 D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, 1095 D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, 1096 D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, 1097 D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, 1098 D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, 1099 D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, 1100 D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, 1101 D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, 1102 D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, 1103 D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, 1104 D3D10_SVT_UINT = D3D_SVT_UINT, 1105 D3D10_SVT_UINT8 = D3D_SVT_UINT8, 1106 D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, 1107 D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, 1108 D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, 1109 D3D10_SVT_BLEND = D3D_SVT_BLEND, 1110 D3D10_SVT_BUFFER = D3D_SVT_BUFFER, 1111 D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, 1112 D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, 1113 D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, 1114 D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, 1115 D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, 1116 D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, 1117 D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, 1118 D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, 1119 D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, 1120 D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, 1121 D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, 1122 D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, 1123 D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, 1124 D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, 1125 D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, 1126 D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, 1127 D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, 1128 D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, 1129 D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, 1130 D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, 1131 D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, 1132 D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, 1133 D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, 1134 D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, 1135 D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, 1136 D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, 1137 D3D_SVT_FORCE_DWORD = 0x7fffffff 1138 } 1139 alias _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE; 1140 1141 1142 alias _D3D_SHADER_INPUT_FLAGS = int; 1143 enum : _D3D_SHADER_INPUT_FLAGS 1144 { 1145 D3D_SIF_USERPACKED = 1, 1146 D3D_SIF_COMPARISON_SAMPLER = 2, 1147 D3D_SIF_TEXTURE_COMPONENT_0 = 4, 1148 D3D_SIF_TEXTURE_COMPONENT_1 = 8, 1149 D3D_SIF_TEXTURE_COMPONENTS = 12, 1150 D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, 1151 D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, 1152 D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, 1153 D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, 1154 D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, 1155 D3D_SIF_FORCE_DWORD = 0x7fffffff 1156 } 1157 alias _D3D_SHADER_INPUT_FLAGS D3D_SHADER_INPUT_FLAGS; 1158 1159 1160 alias _D3D_SHADER_INPUT_TYPE = int; 1161 enum : _D3D_SHADER_INPUT_TYPE 1162 { 1163 D3D_SIT_CBUFFER = 0, 1164 D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , 1165 D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , 1166 D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , 1167 D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , 1168 D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , 1169 D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , 1170 D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , 1171 D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , 1172 D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , 1173 D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , 1174 D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , 1175 D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, 1176 D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, 1177 D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, 1178 D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, 1179 D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, 1180 D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, 1181 D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, 1182 D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, 1183 D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, 1184 D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, 1185 D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, 1186 D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER 1187 } 1188 alias _D3D_SHADER_INPUT_TYPE D3D_SHADER_INPUT_TYPE; 1189 1190 1191 alias _D3D_SHADER_CBUFFER_FLAGS = int; 1192 enum : _D3D_SHADER_CBUFFER_FLAGS 1193 { 1194 D3D_CBF_USERPACKED = 1, 1195 D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, 1196 D3D_CBF_FORCE_DWORD = 0x7fffffff 1197 } 1198 alias _D3D_SHADER_CBUFFER_FLAGS D3D_SHADER_CBUFFER_FLAGS; 1199 1200 1201 alias _D3D_CBUFFER_TYPE = int; 1202 enum : _D3D_CBUFFER_TYPE 1203 { 1204 D3D_CT_CBUFFER = 0, 1205 D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , 1206 D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , 1207 D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , 1208 D3D10_CT_CBUFFER = D3D_CT_CBUFFER, 1209 D3D10_CT_TBUFFER = D3D_CT_TBUFFER, 1210 D3D11_CT_CBUFFER = D3D_CT_CBUFFER, 1211 D3D11_CT_TBUFFER = D3D_CT_TBUFFER, 1212 D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, 1213 D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO 1214 } 1215 alias _D3D_CBUFFER_TYPE D3D_CBUFFER_TYPE; 1216 1217 1218 alias D3D_NAME = int; 1219 enum : D3D_NAME 1220 { 1221 D3D_NAME_UNDEFINED = 0, 1222 D3D_NAME_POSITION = 1, 1223 D3D_NAME_CLIP_DISTANCE = 2, 1224 D3D_NAME_CULL_DISTANCE = 3, 1225 D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, 1226 D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, 1227 D3D_NAME_VERTEX_ID = 6, 1228 D3D_NAME_PRIMITIVE_ID = 7, 1229 D3D_NAME_INSTANCE_ID = 8, 1230 D3D_NAME_IS_FRONT_FACE = 9, 1231 D3D_NAME_SAMPLE_INDEX = 10, 1232 D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, 1233 D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, 1234 D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, 1235 D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, 1236 D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, 1237 D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, 1238 D3D_NAME_TARGET = 64, 1239 D3D_NAME_DEPTH = 65, 1240 D3D_NAME_COVERAGE = 66, 1241 D3D_NAME_DEPTH_GREATER_EQUAL = 67, 1242 D3D_NAME_DEPTH_LESS_EQUAL = 68, 1243 D3D_NAME_STENCIL_REF = 69, 1244 D3D_NAME_INNER_COVERAGE = 70, 1245 D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, 1246 D3D10_NAME_POSITION = D3D_NAME_POSITION, 1247 D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, 1248 D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, 1249 D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, 1250 D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, 1251 D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, 1252 D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, 1253 D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, 1254 D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, 1255 D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, 1256 D3D10_NAME_TARGET = D3D_NAME_TARGET, 1257 D3D10_NAME_DEPTH = D3D_NAME_DEPTH, 1258 D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, 1259 D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, 1260 D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, 1261 D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, 1262 D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, 1263 D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, 1264 D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, 1265 D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, 1266 D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, 1267 D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, 1268 D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE 1269 } 1270 1271 alias D3D_RESOURCE_RETURN_TYPE = int; 1272 enum : D3D_RESOURCE_RETURN_TYPE 1273 { 1274 D3D_RETURN_TYPE_UNORM = 1, 1275 D3D_RETURN_TYPE_SNORM = 2, 1276 D3D_RETURN_TYPE_SINT = 3, 1277 D3D_RETURN_TYPE_UINT = 4, 1278 D3D_RETURN_TYPE_FLOAT = 5, 1279 D3D_RETURN_TYPE_MIXED = 6, 1280 D3D_RETURN_TYPE_DOUBLE = 7, 1281 D3D_RETURN_TYPE_CONTINUED = 8, 1282 D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, 1283 D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, 1284 D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, 1285 D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, 1286 D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, 1287 D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, 1288 D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, 1289 D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, 1290 D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, 1291 D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, 1292 D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, 1293 D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, 1294 D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, 1295 D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED 1296 } 1297 1298 alias D3D_REGISTER_COMPONENT_TYPE = int; 1299 enum : D3D_REGISTER_COMPONENT_TYPE 1300 { 1301 D3D_REGISTER_COMPONENT_UNKNOWN = 0, 1302 D3D_REGISTER_COMPONENT_UINT32 = 1, 1303 D3D_REGISTER_COMPONENT_SINT32 = 2, 1304 D3D_REGISTER_COMPONENT_FLOAT32 = 3, 1305 D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, 1306 D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, 1307 D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, 1308 D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32 1309 } 1310 1311 alias D3D_TESSELLATOR_DOMAIN = int; 1312 enum : D3D_TESSELLATOR_DOMAIN 1313 { 1314 D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, 1315 D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, 1316 D3D_TESSELLATOR_DOMAIN_TRI = 2, 1317 D3D_TESSELLATOR_DOMAIN_QUAD = 3, 1318 D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, 1319 D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, 1320 D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, 1321 D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD 1322 } 1323 1324 alias D3D_TESSELLATOR_PARTITIONING = int; 1325 enum : D3D_TESSELLATOR_PARTITIONING 1326 { 1327 D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, 1328 D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, 1329 D3D_TESSELLATOR_PARTITIONING_POW2 = 2, 1330 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, 1331 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, 1332 D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, 1333 D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, 1334 D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, 1335 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, 1336 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN 1337 } 1338 1339 1340 alias D3D_TESSELLATOR_OUTPUT_PRIMITIVE = int; 1341 enum : D3D_TESSELLATOR_OUTPUT_PRIMITIVE 1342 { 1343 D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, 1344 D3D_TESSELLATOR_OUTPUT_POINT = 1, 1345 D3D_TESSELLATOR_OUTPUT_LINE = 2, 1346 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, 1347 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, 1348 D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, 1349 D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, 1350 D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, 1351 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, 1352 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW 1353 } 1354 1355 alias DWORD D3D_MIN_PRECISION; 1356 enum : D3D_MIN_PRECISION 1357 { 1358 D3D_MIN_PRECISION_DEFAULT = 0, 1359 D3D_MIN_PRECISION_FLOAT_16 = 1, 1360 D3D_MIN_PRECISION_FLOAT_2_8 = 2, 1361 D3D_MIN_PRECISION_RESERVED = 3, 1362 D3D_MIN_PRECISION_SINT_16 = 4, 1363 D3D_MIN_PRECISION_UINT_16 = 5, 1364 D3D_MIN_PRECISION_ANY_16 = 0xf0, 1365 D3D_MIN_PRECISION_ANY_10 = 0xf1 1366 } 1367 1368 alias DWORD D3D_INTERPOLATION_MODE; 1369 enum : D3D_INTERPOLATION_MODE 1370 { 1371 D3D_INTERPOLATION_UNDEFINED = 0, 1372 D3D_INTERPOLATION_CONSTANT = 1, 1373 D3D_INTERPOLATION_LINEAR = 2, 1374 D3D_INTERPOLATION_LINEAR_CENTROID = 3, 1375 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, 1376 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, 1377 D3D_INTERPOLATION_LINEAR_SAMPLE = 6, 1378 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 1379 } 1380 1381 alias DWORD D3D_PARAMETER_FLAGS; 1382 enum : D3D_PARAMETER_FLAGS 1383 { 1384 D3D_PF_NONE = 0, 1385 D3D_PF_IN = 0x1, 1386 D3D_PF_OUT = 0x2, 1387 D3D_PF_FORCE_DWORD = 0x7fffffff 1388 } 1389 1390 mixin( uuid!(WKPDID_D3DDebugObjectName, "429b8c22-9188-4b0c-8742-acb0bf85c200") ); 1391 mixin( uuid!(WKPDID_D3DDebugObjectNameW, "4cca5fd8-921f-42c8-8566-70caf2a9b741") ); 1392 mixin( uuid!(WKPDID_CommentStringW, "d0149dc0-90e8-4ec8-8144-e900ad266bb2") ); 1393 interface WKPDID_D3DDebugObjectName {} 1394 interface WKPDID_D3DDebugObjectNameW {} 1395 interface WKPDID_CommentStringW {}